PHLEGM v9 Revision r51: ActRaiser wide-bus tracing and trace-OFF performance

Context: PHLEGM v9 r50 ActRaiser test showed graphics corruption / forced
blank in several coredumps, and the user measured about 14 FPS maximum
with forensic tracing disabled. This is far below NTSC nominal 60 FPS.

Changes:
1. The generic 24-bit wide-bus remains authoritative and data-driven.
   A 256-byte page cache selects the first fully covering matching rule for
   reads/writes in O(1) on ordinary pages. Any page with a partial earlier
   rule follows the original ordered scan. The cache is rebuilt on profile
   load; no machine-specific behavior is hardcoded into VM microcode.
2. The 14 FPS report is for COREDUMP TRACE **OFF**. The problem is not
   diagnostic tracing overhead. Fix a concrete untraced hot spot: polling
   S-CPU $4210/$4212 previously re-mirrored ALL 32 S-CPU registers for EVERY
   read. Logs show 645,800 $4210 reads in 214 frames, implying over 20M
   unnecessary mirror calls for this register alone. Now the accessed
   register is mirrored once on read; the native S-CPU IO array remains
   authoritative. Other registers still receive bulk mirroring on writes.
   Skip unnecessary forensic function calls from CPU instruction/memory-read
   hot paths while tracing is OFF, without changing emulated CPU cycle counts.
3. Capture 24-bit SNES CPU writes to $2100-$213F, $2140-$2143, $2180-$2183,
   $4200-$421F and $4300-$437F while forensic tracing is ON. CPU DMA/HDMA
   also routes through the same trace-aware write dispatcher. No extra
   read-side effects are introduced: before/after values for known SNES
   registers come from retained diagnostic latches, not BusRead. With tracing
   OFF, DMA/HDMA keeps using its original direct WideBusWrite path.
4. Core dumps now contain a bounded, always-on [$2100] INIDISP write history
   with frame/beam/PC/instruction/cycle/before/after for up to 128 writes.
   This history remains available with COREDUMP TRACE OFF, and does not get
   drowned by VRAM streaming. It clears on SNES PPU reset.
5. Revision metadata now r51 in the master and compiler configuration.

Static validation:
 - tests/SNES-Wide-Bus-Trace-Cache-r51.Tests.sh: PASS (includes read-only
   $4210 polling fast-path source check).
 - All 65,536 bank/page combinations verified for 6 representative offsets
   per read and write direction against the ordered rule selection.
 - tests/SNES-BG-CHR-r49.Tests.sh: PASS (static/arithmetic).
 - tests/SNES-HDMA-Scanline-r48.Tests.sh: PASS (static).
 - tests/Archive-Codec-Unsigned-Sentinels-r50.Tests.sh: PASS (static).

Important limitations: No native FreeBASIC compiler is installed here, so
there was no Windows/Linux native compilation or runtime FPS measurement.
The native read-mirroring loop is a confirmed source-level hot-spot, but
actual speedup and 60 FPS have NOT been demonstrated, and the SNES video corruption has NOT been proven fixed.
A fresh compiled build and comparison with r50 on the same machine are needed.

Suggested hands-on test:
 1. Compile PHLEGM v9 r51, ensure the selected runtime reports r51.
 2. Use MACRO EXEC diagnostics/ActRaiser-Diagnostics-Start to boot ActRaiser
    and capture device/PPU events; retain screenshots and coredumps.
 3. Use MACRO EXEC diagnostics/ActRaiser-Performance-Untraced to stop capture
    timers and disable tracing. Compare trace-OFF FPS with r50 (14 FPS
    baseline) using the same settings and machine.
 4. After a corruption or unexpected forced blank, use COREDUMP SAVE r51-test
    with tracing OFF if desired. Inspect [SNES-INIDISP-WRITE-HISTORY] entries
    for exactly when $2100 was set to $80 or cleared.
 5. Share compiler logs, this coredump and a screenshot for follow-up.

The user-supplied ActRaiser ROM is not included in this distribution.
